home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 1 / ETO Development Tools 1.iso / Essentials / MacApp Documentation / MacApp AppleLink Messages / MacApp.Tech$ 11⁄10⁄89 / 0064-TEditText Validate P-Nov89 < prev    next >
Encoding:
Text File  |  1989-11-10  |  2.0 KB  |  62 lines  |  [TEXT/GEOL]

  1. Item forwarded  by  A33          to A34
  2.  
  3. Item    5658090                         8-Nov-89        18:10
  4.  
  5. From:   D2234                           Cock, Calvin,PRT
  6.  
  7. To:     MACAPP.TEST                     MacApp SQA Team
  8.  
  9. cc:     MACAPP.TECH$                    MacApp Technical
  10.  
  11. Sub:    TEditText Validate Prob.
  12.  
  13.  
  14.     I have a complaint about the structure of TEditText in 2.0ß9 versus 2.0ß5.
  15. In 2.0ß5 you could OVERRIDE the validate method, do your own checking, put up
  16. any alerts to your user and return FALSE and the TDialogView.DoSelectEditText
  17. would call CantDeselect and the EditText would be reselected.
  18.  
  19.     With 2.0ß9, there is no way to put up your own alerts without having the
  20. CantDeselect method either post another alert (if your return kInvalidValue) or
  21. select the next EditText (If you return kValidValue).
  22.  
  23.     I suggest that there be declared an additional constant in the interface to
  24. UDialog, kErrorHandled = -1, that would signal the CantDeselect method that the
  25. error had already be posted and restart the edit field with the old value.
  26. CantDeselect then would look like this:
  27.  
  28.  
  29.  
  30. PROCEDURE TDialogView.CantDeselect (theEditText: TEditText;
  31.        reason: LONGINT);
  32.  
  33.   VAR
  34.    aString: Str255;
  35.  
  36.  BEGIN
  37.   IF (reason <> kValidValue) THEN
  38.    BEGIN
  39.       IF (reason <> kErrorHandled) THEN { Go ahead an post alert }
  40.         BEGIN
  41.           IF (reason < 1) | (reason > kNoOfDefaultReasons) THEN
  42.             reason := kInvalidValue;
  43.           GetIndString(aString, kInvalidValueReasons, reason);
  44.           ParamText(aString, '', '', '');
  45.           StdAlert(phInvalidValue);
  46.         END;
  47.      aString := theEditText.fDataHandle^^; { Restart with previous value }
  48.     theEditText.RestartEdit(aString);
  49.    END;
  50.  END;
  51.  
  52.     I think that this is cleaner than having to create an abstact class
  53. MyDialogView with the CantDeselect OVERRIDDEN.  The error handling should be
  54. taken care of by the TEditText object, the TDialogView object should only post
  55. default errors.
  56.  
  57.  
  58. Calvin Cock
  59. Applications Design Group
  60.  
  61.  
  62.